Graphical user interface for facilitating access to online groups

ABSTRACT

Methods, systems, and graphical user interfaces that automatically personalize and prioritize links to online groups are disclosed. A server automatically generates a set of prioritized links to online groups based at least in part on a computer user&#39;s browsing patterns with respect to online groups and sends these links to a client for display in a navigation region in a graphical user interface.

RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 60/570,263, filed May 11, 2004, which is incorporated by referenceherein in its entirety.

TECHNICAL FIELD

The disclosed embodiments relate generally to interfaces forfacilitating access to online groups. More particularly, the disclosedembodiments relate to methods, systems, and graphical user interfacesfor automatically personalizing and prioritizing links to Internetgroups, such as Usenet groups and other groups visited by a computeruser.

BACKGROUND

Online groups (e.g., groups found in Google Groups, AOL Groups, MSNGroups, Yahoo! Groups, Usenet, and other online user groups and messageboards) are increasing in popularity and use as the number of computerusers continues to grow. However, as users create and/or visit moregroups, it becomes increasingly cumbersome for such users to keep trackof and easily return to the groups that interest them.

At present, some web sites create a list of all the groups that a userhas joined. For example My Groups at Yahoo! Groups creates a list of allthe groups that a user belongs to in Yahoo! Groups, lets the usermanually rank order these groups, and displays a list with links to thetop 25 groups chosen by the user. However, a Yahoo! Groups user mustmanually adjust and maintain his top 25 list as his interests changeover time. Moreover, a user's top 25 list is only present on his Yahoo!Groups front page and there is nothing to indicate which groups in histop 25 have had activity (e.g., new listings, postings, or othermessages) since his last visit.

SUMMARY

The present invention overcomes the limitations and disadvantagesdescribed above by providing methods, systems, and graphical userinterfaces that automatically personalize and prioritize links to onlinegroups.

One aspect of the invention involves a computer-implemented method thatautomatically generates a set of prioritized links to online groupsbased at least in part on a computer user's browsing patterns withrespect to online groups, and sends the set of links to a computer fordisplay in a graphical user interface.

Another aspect of the invention involves a computer-implemented methodthat receives a set of prioritized links to online groups for a computeruser, and displays the set of links in a graphical user interface. Theset of prioritized links are automatically generated by a remotecomputer based at least in part on the computer user's browsing patternswith respect to online groups.

Another aspect of the invention involves a system with at least oneserver configured to automatically generate a set of prioritized linksto online groups based at least in part on a computer user's browsingpatterns with respect to online groups, and send the set of links to acomputer for display in a graphical user interface.

Another aspect of the invention involves a graphical user interface on acomputer with a set of prioritized links to online groups for a computeruser. The set of links are automatically generated by a remote computerbased at least in part on the computer user's browsing patterns withrespect to online groups.

Another aspect of the invention involves a machine readable mediumhaving stored thereon data representing sequences of instructions, whichwhen executed by a server, cause the server to automatically generate aset of prioritized links to online groups based at least in part on acomputer user's browsing patterns with respect to online groups, andsend the set of links to a computer for display in a graphical userinterface.

Another aspect of the invention involves a machine readable mediumhaving stored thereon data representing sequences of instructions, whichwhen executed by a client, cause the client to receive a set ofprioritized links to online groups for a computer user, and display theset of links in a graphical user interface. The set of prioritized linksare automatically generated by a remote computer based at least in parton the computer user's browsing patterns with respect to online groups.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an exemplary communicationssystem.

FIG. 2 is a block diagram illustrating an embodiment of NavigationRegion Server 102.

FIGS. 3A-3D are block diagrams illustrating an embodiment of userinformation database 224 in greater detail.

FIG. 4 is a diagram illustrating an exemplary graphical user interface112.

FIG. 5 is a flow chart of an exemplary process for automaticallypersonalizing and prioritizing links to online groups.

Like reference numbers refer to corresponding parts throughout thedrawings.

DESCRIPTION OF EMBODIMENTS

Methods, systems, and graphical user interfaces are described thatautomatically personalize and prioritize links to online groups.Reference will be made to certain embodiments of the invention, examplesof which are illustrated in the accompanying drawings. While theinvention will be described in conjunction with the embodiments, it willbe understood that it is not intended to limit the invention to theseparticular embodiments alone. On the contrary, the invention is intendedto cover alternatives, modifications and equivalents that are within thespirit and scope of the invention as defined by the appended claims.

Moreover, in the following description, numerous specific details areset forth to provide a thorough understanding of the present invention.However, it will be apparent to one of ordinary skill in the art thatthe invention may be practiced without these particular details. Inother instances, methods, procedures, components, and networks that arewell-known to those of ordinary skill in the art are not described indetail to avoid obscuring aspects of the present invention.

FIG. 1 is a block diagram illustrating an exemplary communicationssystem. This system includes clients 104, Navigation Region Server 102,Groups Servers 110, and communication network(s) 106 for interconnectingthese components. Client 104 includes browser 108 with graphical userinterface (GUI) 112. Navigation Region Server 102 automaticallygenerates a set of prioritized links to online groups based, at least inpart, on a computer user's browsing patterns with respect to onlinegroups and sends these links to client 104 for display in a navigationregion in GUI 112. Groups Servers 110 send, receive and store data aboutonline groups. Communications network(s) 106 may include the Internetand may also include one or more local area networks and/or wide areanetworks, and need not be described in detail because such networks arewell known to those of ordinary skill in the art.

In some embodiments, Navigation Region Server 102 is implemented using aplurality of computers servers or processors. For instance, in a systemthat provides online groups services for millions of users throughoutthe world, a distinct set of one or more Navigation Regions Servers maybe used to provide services to users in each of several distinctgeographic regions of the world. In some embodiments, one or more of theNavigation Region Servers 102 may also be used as one of the GroupsServers 110.

In some embodiments, the Groups Servers 110 include at least one serverhaving a groups database 120, which responds to queries from thenavigation region server 102 by providing the highest message numbersfor specified groups. In one embodiment, the groups database 120includes a cache in which the highest message number is stored for allonline groups serviced by the groups servers 110. The information in thecache is updated periodically, and queries from the navigation regionserver 102 requesting the highest message number for any specifiedgroup, or set of groups, are answered by providing information currentlystored in the cache.

FIG. 2 is a block diagram illustrating an embodiment of NavigationRegion Server 102. Navigation Region Server 102 generally includes oneor more processing units (CPU's) 202, one or more network or othercommunication interfaces 204, memory 206, and one or more communicationbuses 208 for interconnecting these components.

Memory 206 may include high-speed random access memory and may alsoinclude non-volatile memory, such as one or more magnetic disk storagedevices. Memory 206 may include mass storage that is remotely locatedfrom the central processing unit(s) 202.

In one embodiment, memory 206 stores operating system 210, networkcommunication module 212, and Navigation Region Engine 214. Operatingsystem 210 (e.g., LINUX, UNIX, or WINDOWS) includes procedures forhandling basic system services and for performing hardware dependenttasks. Network communication module 212 is used for communicating withGroups Servers 110 and clients 104.

Navigation Region Engine 214 includes Navigation Region Generator 216and user information database 224. In one embodiment, Navigation RegionGenerator 216 includes group activity monitor 222, links generator forpersonalized and prioritized groups 218, and links generator for mostrecently visited groups 220. Group activity monitor 222 determineswhether there has been activity (e.g., new postings) in online groupspreviously visited by a particular computer user since that user's lastvisit. In one embodiment, the monitoring of online groups previouslyvisited can be limited to the online groups to which the user hassubscribed. In another embodiment, the monitoring of online groupsincludes both groups to which the user has subscribed as well as othergroups that the user has visited. For either embodiment, the onlinegroups monitored on behalf of a particular user are herein called “themonitored online groups” or “the user's monitored online groups.” Formonitored online groups that have had activity since the user's lastvisit, group activity monitor 222 determines the amount of that activity(e.g., the number of new postings since the user's last visit).

Links generator 218 uses information from group activity monitor 222 anduser information database 224 to automatically generate a prioritizedset of links to online groups for a particular user based on that user'sbrowsing habits. Links generator 218 generates links based on ananalysis of a particular user's browsing patterns with respect to onlinegroups (e.g., whether or not a user consistently visits a group when theuser receives an indication that there are new listings posted to thatgroup), whereas links generator 220 generates links to the groups mostrecently visited by a particular computer user. More specifically, linksgenerator 220 automatically generates links to the online groups mostrecently visited by a particular user, excluding the online groups forwhich links are generated by links generator 218. Determining the mostrecently visited online groups (for a specific user) for which links areto be generated is accomplished, as described below, by accessing theuser information database 224.

Although FIG. 2 shows Navigation Region Server 102 as a number ofdiscrete items, FIG. 2 is intended more as a functional description ofthe various features which may be present in Navigation Region Server102 rather than as a structural schematic of the embodiments describedherein. In practice, and as recognized by those of ordinary skill in theart, items shown separately could be combined and some items could beseparated. For example, some items shown separately in FIG. 2 could beimplemented on single servers and single items could be implemented byone or more servers. The actual number of servers in Navigation RegionServer 102 and how features are allocated among them will vary from oneimplementation to another, and may depend in part on the amount of datatraffic that the system must handle during peak usage periods as well asduring average usage periods.

FIGS. 3A-3D are block diagrams illustrating an embodiment of userinformation database 224 in greater detail.

FIG. 3A is a block diagram illustrating that user information database224 includes map 304 and user records 306. Map 304 is used to access therecord of a particular user based on the corresponding UserID 302 forthat user. In some embodiments, the UserID is the user's screen name ora unique identifier for the user. The UserID may be obtained (e.g., froma user database) when the user logs in, or from a cookie on the user'scomputer. User records 306 include records for a plurality of users(user 1, user 2, . . . user x, . . . , user n). Each user record 306includes user status information 314 and group information records 316for the user.

FIG. 3B is a block diagram illustrating exemplary user x record 306-x inmore detail. User x status information 314 includes the User ID 302, andtime of last visit to service 318 (i.e., the time user x last accessedor tried to access online groups). Group information records 316 foruser x includes group information records for all the groups to whichthe user has subscribed as well as other groups, if any, that the userhas visited. In some embodiments, the number of records 316 used tostore information about the visited groups to which the user is notsubscribed may be limited to a predefined number of such records. Forexample, if links to no more than D (e.g., five, or ten) such groupswill be displayed to the user, then no more than D such records need bemaintained.

FIG. 3C is a block diagram illustrating exemplary group y informationrecord 316-y for user x in more detail. Record 316-y includes group ID326, last message read 328, current score 330, time of last visit 332,and group activity record 334. Group ID 326 identifies an online grouppreviously visited by user x. In one embodiment, group ID 326 identifiesan online group to which user x has subscribed. Last message read 328 isan identifier, index or pointer that identifies the most recent message(e.g., the message having the highest message ID) in the online groupwith group ID 326 that was viewed by user x. In some embodiments, themessages for a group are assigned monotonically increasing numbers,which may be considered to be message ID's. The last message read 328identifies the group's highest number message at the time the user lastvisited the group, regardless of whether the user read or viewed thatmessage. Current score 330 is used to determine whether (and where) alink to online group with group ID 326 will appear in the navigationregion in GUI 112. The computation of current score 330 is discussedbelow. Time of last visit 332 is a time stamp indicating the last timethat user x visited the online group with group ID 326.

In some embodiments, the current score 330 is not durably stored as partof the group information record 316-y, and is only maintained while theuser is logged in. Further, in some embodiments, the message ID of thelast message read and the time of the last visit 332 for both thecurrent visit and for the previous visit are both stored in the groupinformation record 316-y.

Group activity record 334 contains an array that stores activity scoringinformation for the online group with group ID 326 as a function oftime. In one embodiment, the record 334 includes a number ofsequentially arranged buckets that store the activity data for thisgroup over progressively longer and progressively more remote timeperiods. For example, the first eight buckets (H1-H8) store activitydata for this group over a sequence of three hour periods, while laterbuckets store activity data over several days (D1-D7) and weeks(W1-W13), or other predefined, progressively longer time periods, with afinal bottom (B) bucket for the oldest activity scoring information. Thenumber of buckets in record 334, and the time periods associated witheach such bucket, may vary from one embodiment to another. The timeperiods associated with each bucket are time periods relative to adefined start time. In one embodiment, the buckets in record 334 are allassigned timestamps when the user first subscribes to the online group,or first uses the groups service to access the group. The timestamp foreach bucket indicates the beginning of the time period for which thescoring information in the bucket. Thus, all the bucket timestampsidentify times in the past, with each successive buckets in record 334having an “older” timestamp than the preceding bucket. For example, thetimestamps for the buckets in an exemplary group activity record mightbe:

-   -   T1: 5/11/2004, 11 AM    -   T2: 5/11/2004, 8 AM    -   . . .    -   T8: 5/10/2004, 2 PM    -   D1: 5/10/2004, 11 AM    -   D2: 5/09/2004, 11 AM    -   . . .    -   D7: 5/03/2004, 11 AM    -   W1: Apr. 26, 2004, 11 AM    -   . . .    -   W13: 2/2/2004, 11 AM    -   B: 11/3/2003, 11 AM

The information stored in each bucket, other than the first bucket, is ascore value, and a corresponding timestamp. The information stored inthe first bucket comprises two flags: an activity flag, indicatingwhether any new activity (e.g., new postings) have occurred in the groupin the corresponding period, and a visit flag, indicating whether theuser has visited the corresponding online group during the correspondingperiod. When the user first logs onto the online groups service, theactivity flag is set for each group that has had new activity since thelast time the user visited that group. Furthermore, while the userremains logged into the online groups service, the activity flag will beset for any group that experiences new activity during that time period,and the visit flag will be set for each online group that the uservisits. The computation and updating of the scores stored in the groupactivity record 334 are discussed below.

FIG. 3D shows the group information record 316-m for an online group towhich the user has not subscribed. In some embodiments, less informationis stored in the user records 306 for groups visited by the user, but towhich the user has not subscribed. In particular, the informationretained for such groups includes the time of the last visit to thegroup by the user 332 and optionally includes the identity of the lastmessage read 328 by the user. The time of the last visit 332 is neededfor determining which online groups are the ones most recently visitedby the user. The identity of last message read 328 is optionally storedin record 316-m, and can be used, in conjunction with informationobtained from the respective online group, to determine the number ofnew messages added to the online group after the last message read bythe user. In some embodiments, the identity of the last message read 328is not included in the group information record 316-m for an onlinegroup that the user has visited, but to which the user has notsubscribed. In some embodiments, the group information record 316-m forsuch an online group does not include a group activity record 334because the set of online groups most recently visited by the user tendsto change over time, making the storage or historical group activity anduser visits activity of little use.

FIG. 4 is a diagram illustrating an exemplary graphical user interface(GUI) 112. GUI 112 includes Navigation Region 402 and main window 408.Navigation Region 402 displays personal (i.e., for a particular user),prioritized links 404 to online groups that are automatically generatedby and received from Navigation Region Server 102. Prioritized links 404are personal because they are based, at least in part, on the particularcomputer user's browsing habits with respect to online groups.Navigation Region 402 can be a bar, panel, palette, or other similararea in GUI 112.

In one embodiment, indicia of activity can also be automaticallygenerated and displayed in Navigation Region 402 within or beside linksfor groups that have had activity since a previous visit by the user.For example, a number in parentheses [e.g., “(3)”] within or beside alink can indicate the number of new postings in the corresponding groupsince a previous visit by the user. Alternatively, the indicia ofactivity can be a non-numeric symbol that indicates a level of activitysince a last visit to the online group by the user. For example, thelevel of activity may be indicated by a font color or by highlightingthe links to the most active groups, or by a variable number ofinstances of a symbol (e.g., one, two or three stars or the like), andso on.

In one embodiment, Navigation Region 402 also displays links 406 togroups most recently visited by the user. In some embodiments, the links406 to recently visited groups do not include any of the links in theprioritized links 404.

In some embodiments, the prioritized links 404 are divided into twogroups 410, 412. The first group 410 of prioritized links are links togroups most consistently visited by the user. The second group 412 ofprioritized links are links to groups to which the user has subscribedand that have the most new postings since a last visit by the user. Thesecond group 412 of prioritized links does not include links to thegroups for which links are included in the first group 410.

Main window 408 displays a variety of different content (e.g., an onlinegroup directory, content from a group selected using a link inNavigation Region 402, or content from a specific group). In oneembodiment, Navigation Region 402 remains visible in GUI 112 as the uservisits various online groups in main window 408.

FIG. 5 is a flow chart of an exemplary process for automaticallypersonalizing and prioritizing links to online groups. The process shownin FIG. 5 is performed by the Navigation Region Server 102 (FIG. 1). Itwill be appreciated by those of ordinary skill in the art that one ormore of the acts described may be performed by hardware, software, or acombination thereof, as may be embodied in one or more computingsystems.

At 502, a user logs in to the system. In some embodiments, the userenters a UserID 302 and a password into client 104. Alternatively, theuser can automatically login via a cookie stored in client 104. In someembodiments, the method shown in FIG. 5 is also initiated whenever apage redraw operation is performed (503), for instance because the userhas selected a new group to view.

At 504, the user's user record (e.g., user x record 306-x) is scanned.In some embodiments, Navigation Region Engine 214 scans the groupinformation records 316 for user x for the group IDs (e.g., group ID326) of online groups subscribed to by user x or previously visited byuser x.

At 506, group activity information is retrieved for the groupspreviously visited by the user. In some cases, this information is justretrieved for the online groups to which the user has subscribed. Insome embodiments, group activity monitor 222 determines from the groupinformation records 316 the identify of last message read 328 for eachof the groups represented by the group information records 316 in theuser record 306 for user x. Group activity monitor 222 sends queries togroups servers 110 to determine the number of new postings since thelast message read 328 for each of these groups. Group activity monitor222 also updates the group activity records 334 in the group informationrecords 316 for user x.

In some other embodiments, instead of basing the determination of newactivity on the identity of the last message read 328 for each of thegroups represented by the records 316, the new activity determination isbased on the time of the last visit 332 for these online groups. In thiscase, the group activity monitor 222 asks the groups servers 110 todetermine the number of new postings since the time of the last visit toeach of these online groups.

At 506, group activity information is retrieved from one or more of thegroup servers (see FIG. 1), and the group activity records 334 for theuser are updated. In one embodiment, an activity flag is set in thegroup activity record of group that has at least one new message pastthe highest number message read or viewed by the user. In addition, avisit flag is set if the user is currently visiting the group. Apseudocode representation of the procedure for implementing 506 in oneembodiment is shown in Table 1. In other embodiments, other informationmay be stored in the group activity records, such as the number of newmessages posted during a corresponding time period, and the number ofvisits by the user or the number of messages read by the user. TABLE 1Group Information Update Procedure { // Execution upon each page redraw// Repeat for each Subscribed Group { Obtain highest message number forGroup; Compare with last message read by user; If new activity in Group{ Set activity flag in Group Information Record; } If user is visitingGroup { Set visit flag in Group Information Record; } } }

At 508, a set of prioritized links for the user is automaticallygenerated. The set of prioritized links is typically limited to apredefined maximum number to keep Navigation Region 402 from becomingcluttered. The prioritization is based, at least in part, on the user'sbrowsing patterns with respect to online groups. In some embodiments,links generator 218 uses group activity records 334 to calculate a score330 for each group represented by a group information record 316 foruser x. In some embodiments, a score 330 is generated only for thoseonline groups to which the user has subscribed. Score 330 for an onlinegroup will be higher if the user consistently visits that group afterreceiving an indication that there has been new activity in that groupsince the user's last visit. Conversely, score 330 for a group will belower if the user rarely visits that group after receiving an indicationthat there has been new activity in that group since the user's lastvisit. In some embodiments, the score for a group is based on thefrequency with which the user visits an online group during time periodsin which the group has new postings. In some embodiments, the score 330is generated using a scoring function that weights recent group activityand user visits more heavily than group activity and user visits furtherin the past. In other embodiments, the scoring function may take uservisits to online groups and group activity into account without regardto whether the user visits take place during the same time periods asthe group activity.

Numerous types of prioritization are possible. In some embodiments,links generator 218 automatically generates a set of prioritized linksthat correspond to those groups with the highest current scores 330,with the links listed in descending order. In other embodiments, linksgenerator 218 can automatically generate a first set of prioritizedlinks (see 410, FIG. 4) in which links to the online groups that are themost consistently visited by the user (i.e., the groups with the highestscores) are listed first, followed by a second set of links (412, FIG.4) to online groups to which the user has subscribed that have had themost activity since a prior visit by the user. These latter links can bereplaced or updated as the user visits the corresponding groups, therebypermitting links to other sites with activity since a prior visit to begenerated, transmitted and displayed.

In some embodiments, the anchor text displayed with the prioritizedlinks 404 include an indicia of the level of activity in the respectivegroups since the last visit to those groups by the user. As describedabove, at 506 the navigation region server retrieves group activityinformation. While that information is used to update the user's groupinformation records 334, it can also be used to generate group activityindicia. In one embodiment, the indicia for a group corresponding to aprioritized link 404 is a number (e.g., surrounded by parentheses,brackets or the like) indicating the number of new postings to the groupsince the last visit to the group by the user. In other embodiments,other indicia of group activity level are used, as described above withreference to FIG. 4. Such indicia of group activity level may beappended to the anchor text of the second set of links 412 to onlinegroups to which the user has subscribed that have had the most activitysince a prior visit by the user. Such indicia of group activity levelmay also be appended to the anchor text of the first set of links 410.

Exemplary Embodiment

In an exemplary embodiment, the generation and updating of scores in thegroup activity records 334 is accomplished as follows. A pseudocoderepresentation of the procedures for implementing step 508 in thisexemplary embodiment is shown in Tables 2 and 3. The process ofgenerating scores and updating the information in the buckets of thegroup activities records is performed only when there is a new login bythe user or when the user's online session has been idle for asignificant period of time (e.g., 3 hours). The determination of a “newuser login” takes into account the time of the last user login, which isrecorded in the user record 306. For instance, if less than a thresholdamount of time (e.g., an hour) has expired since the “time of last visitto service” 318 recorded in user record 306, the act of logging in doesnot trigger the generation of new scores. Similarly, the “time of lastvisit to service” 318 is not updated if the current login is less thanthe threshold amount of time has not expired since the time recorded in318.

Similarly, in the exemplary embodiment, the process of identifying theonline groups most consistently visited by the user, and generatinglinks to those groups is performed only when there is a new user loginor when the user's online session has been idle for a significant periodof time (e.g., 3 hours). A reason for so limiting the times at which theprioritized links are regenerated is to make this portion 410 of thenavigation region 402 relatively stable. Other portions of thenavigation region 402 are updated more frequently.

When there is a new user login or when the user's online session hasbeen idle for a significant period of time, the computation of scoresfor each group is triggered. An exemplary implementation is shown inpseudocode form in Table 3. The group activity record 334 for eachsubscribed group (i.e., each online group to which the user hassubscribed) may be considered to have a plurality of layers: an hourlylayer (the H buckets), a daily layer (the D buckets), a weekly layer(the W buckets) and a final layer (the B bucket). Whenever the scoringfunction is executed, the current time is compared with the ending timefor each layer, starting with the last or lowest (i.e., oldest) layer.If the current time is past the ending time for a respective layer, thenthe scoring information from the next higher layer is combined andshifted down to the respective layer. For instance, if the current timeis past the ending time for the final layer, the “NewQuarter” conditionis true, the scores in all the weekly buckets (W1 to W13 in thisexample) are summed, added to the score in the final bucket B, and thenmultiplied by a scaling factor F1. The scaling factor F1 is a valuebetween 0 and 1, such as 0.5, and preferably between 0.2 and 0.8. Bymultiplying the combined scores by the scaling factor F1, current groupactivity is weighted more heavily than group activity long in the pastwhen the total score for the group is computed.

In the pseudocode of Table 3, the conditions NewWeek, NewDay andNewPartialDay corresponding to the current time being later than theending time for the Week layer of buckets, the Day layer of buckets andthe Hour layer of buckets, respectively. When any of the NewQuarter,NewWeek or NewDay conditions are triggered, the scoring information inthe next higher layer is combined, optionally multiplied by a scalingfactor (e.g., a value between 0 and 1, and preferably between 0.2 and0.8) to reduce the weighting of those scores, and stored in a respectivebucket of the corresponding layer. In addition, the scores in the higherlayer are cleared, since they have already been summed and stored in thenext lower layer. Also, when any of the NewWeek, NewDay or NewPartialDayconditions are triggered, the scoring and timestamp information in thecorresponding layer of buckets is shifted down one bucket prior to a newscore value being written into the first bucket in that layer.

When the current time is later than the ending time for the first bucketH1 (thereby triggering the NewPartialDay condition), a score is computedfor the corresponding time period. In one embodiment, a score isassigned as follows. A score is 0 is assigned if the group had activity(e.g., new postings), but the user did not visit the group during thattime period. A score of S1 (e.g., 1) is assigned if the group had noactivity during the time period. A score of S2 (e.g., 2) is assigned ifthe group had activity during the time period, and the user visited thegroup during the time period. Visiting a group during periods in whichthere is no activity indicates user interest in the group, and thus isassigned a high score. When a group has no activity, failure to visit isnot indicative of a lack of user interest, and thus in some embodimentsthe group receives a nonzero score for such time periods. In someembodiments, the score assigned for inactive periods is less than thescore assigned for active periods in which the user visited the group.

After all scoring updates (if any) have been computed for a group, ascore is computed by summing the scores in the buckets of the groupactivity record. This score is stored as the current score 330 in thegroup information record 316 for the group. In an alternate embodiment,scaling factors are not used when updating the scores in the buckets ofthe group activity record 334. Instead, scaling factors or weights areapplied to the scores in the buckets when summing the scores to producethe current score, thereby producing a current score that is a weightedsum of the historical scores for the group. TABLE 2 Generate PrioritizedLinks Procedure { If (NewLogin or LongIdle) { Call ScoringFunction; //Next: Identify Consistently Viewed Groups // Identify the T groupshaving highest scores; Generate Links to the identified T groups; }Identify the S groups to which User has subscribed that have the mostnew messages, excluding the Identified Consistently Viewed Groups;Generate Links to the identified S groups; }

TABLE 3 ScoringFunction { Repeat for each Subscribed Group { IfNewQuarter { B = F1 * (B + Sum(W buckets)); // F1 is a scaling factorbetween 0 and 1 // Clear all W buckets; Update the timestamp of the Bbucket. } If NewWeek { Shift scores and timestamps for W1 thru W12 to W2thru W13; Set new timestamp for W1; W1 = F2 * Sum(D buckets); // F2 is ascaling factor between 0 and 1 // Clear all D buckets; } If NewDay {Shift scores and timestamps for D1 thru D6 to D2 to D7; Set newtimestamp for D1; D1 = F3 * Sum(H buckets); // F3 is a scaling factorbetween 0 and 1 // Clear all H buckets; } If NewPartialDay { ComputeScore for any data in H1; Shift scores and timestamps for H1 thru H7 toH2 thru H8; Set new timestamp for H1; Clear data in H1; If there hasbeen new activity in Group { Set Activity Flag for H1 } } Compute Scorefor Group; // e.g.. Score = sum of scores in all buckets // } }

Optionally, at 510, a set of links to the groups most recently visitedby the user is automatically generated. In some embodiments, linkgenerator 220 scans the user's group information records 316 todetermine the time of last visit 332 for each group, excluding recordsfor groups to which the user has subscribed, and uses that informationto generate a set of links to the groups most recently visited. In someembodiments, the links generated by link generator 220 do not excludegroups to which the user has subscribed, but do not include any of thelinks generated at 508.

At 512, the set of prioritized links is sent to client computer 104. If510 has also been performed, the set of links to the groups mostrecently visited by the user is also sent to client computer 104. Ifindicia of activity have also been generated, these indicia may alsosent to client computer 104. As indicated above, the indicia of activitymay be embedded in the anchor text of the links sent to the clientcomputer. In some embodiments, Navigation Region Server 102 sends theset of prioritized links, the indicia of activity, and the set of linksto the groups most recently visited by the user to client computer 104via communication network(s) 106.

At 514, client computer 104 receives the set of prioritized links anddisplays them in Navigation Region 402 in GUI 112.

In some embodiments, the links in Navigation Region 402 are dynamicallyupdated by Navigation Region Server 102. For example, the prioritizedset of links 404 may be updated if the user remains logged into anonline groups service for a predefined period of time, such as N hours,where N may be a number between 1 and 5. The links 412 to online groupsto which the user has subscribed and that have had the most activitysince a last visit by the user may be updated (a) each time the uservisits any of those groups, and (b) periodically if the user remainslogged into the online groups service for more than a predefined periodof time. Similarly, the links 406 to the groups most recently visited bythe user can be updated each time the user visits a group. When a set oflinks are updated, the process of generating the links is repeated. Ifthe resulting updated set of links is different than the linkspreviously sent to the client computer, the updated links are sent tothe client computer 104, which then displays them in the NavigationRegion 402 (FIG. 4).

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. The embodiments werechosen and described in order to best explain the principles of theinvention and its practical applications, to thereby enable othersskilled in the art to best utilize the invention and various embodimentswith various modifications as are suited to the particular usescontemplated. However, the illustrative discussions above are notintended to be exhaustive or to limit the invention to the precise formsdisclosed. Many modifications and variations are possible in view of theabove teachings.

For example, the methods, systems, and graphical user interfacesdescribed could also be used to automatically personalize and prioritizelinks to all websites (or URLs) visited by a computer user. In someembodiments, group information records 316 become website informationrecords, group activity record 334 becomes a website activity record,and group ID 326 becomes the URL of the website (or a fingerprint of theURL). In some embodiments, the last message read 328 is not used. Insome embodiments, links generator 218 uses website activity records 334to calculate a score 330 for each website represented by a websiteinformation record 316 for user x. In some embodiments, a score 330 isgenerated only for those websites to which the user has subscribed.Score 330 for a website will be higher if the user consistently visitsthat website. Conversely, score 330 for a website will be lower if theuser rarely visits that website. In some embodiments, the score 330 isgenerated using a scoring function that weights recent user visits moreheavily than user visits further in the past. In other embodiments, thescoring function may take both user visits to websites and websiteactivity into account.

For this example, Navigation Region 402 displays personal, prioritizedlinks 404 to websites. Prioritized links 404 are personal because theyare based, at least in part, on the particular computer user's browsinghabits with respect to the websites. In some embodiments, prioritizedlinks 404 are automatically generated by and received from NavigationRegion Server 102. In other embodiments, Navigation Region Engine 214resides in client 104 so that prioritized links 404 are automaticallygenerated locally at client 104. In one embodiment, Navigation Region402 also displays links 406 to websites most recently visited by theuser. In some embodiments, the links 406 to recently visited websites donot include any of the links in the prioritized links 404.

1. A computer implemented method comprising: automatically generating aset of prioritized links to online groups based at least in part on acomputer user's browsing patterns with respect to online groups,automatically generating indicia of new activity since a previous visitby said user for at least some of said online groups, automaticallygenerating a set of links to online groups most recently visited by saiduser, sending said set of prioritized links, said indicia, and said setof links to online groups most recently visited by said user to acomputer for display in a graphical user interface, and updating saidset of prioritized links and said indicia as said user views contentfrom a plurality of online groups, wherein said browsing patterns withrespect to online groups include said user's browsing behavior after newactivity is indicated for at least some of said online groups, andwherein said set of prioritized links includes links to online groupsmost consistently visited by said user followed by links to onlinegroups that have had the most activity since a prior visit by said user.2. A computer implemented method comprising: automatically generating aset of prioritized links to online groups based at least in part on acomputer user's browsing patterns with respect to online groups, andsending said set of links to a computer for display in a graphical userinterface.
 3. The method of claim 2, wherein said browsing patterns withrespect to online groups includes said user's browsing behavior afternew activity is indicated for at least some of said online groups. 4.The method of claim 2, wherein all of said online groups are subscribedto by said user.
 5. The method of claim 2, wherein said set ofprioritized links includes links to online groups most consistentlyvisited by said user followed by links to online groups that have hadthe most activity since a prior visit by said user.
 6. The method ofclaim 2, further comprising automatically generating indicia of newactivity since a previous visit by said user for at least some of saidonline groups and sending said indicia to said computer for display insaid graphical user interface.
 7. The method of claim 2, furthercomprising automatically generating a set of links to online groups mostrecently visited by said user and sending said set of links to onlinegroups most recently visited by said user to said computer for displayin said graphical user interface.
 8. The method of claim 2, furthercomprising updating said set of prioritized links as said user viewscontent from a plurality of online groups.
 9. A computer implementedmethod comprising: receiving a set of prioritized links to online groupsfor a computer user, and displaying said set of links in a graphicaluser interface, wherein said set of prioritized links are automaticallygenerated by a remote computer based at least in part on said computeruser's browsing patterns with respect to online groups.
 10. A systemcomprising at least one server, wherein said at least one server isconfigured to: automatically generate a set of prioritized links toonline groups based at least in part on a computer user's browsingpatterns with respect to online groups, and send said set of links to acomputer for display in a graphical user interface.
 11. A graphical userinterface on a computer comprising: a set of prioritized links to onlinegroups for a computer user, wherein said set of links are automaticallygenerated by a remote computer based at least in part on said computeruser's browsing patterns with respect to online groups.
 12. The methodof claim 11, wherein said set of links remains visible as said userviews content from a plurality of online groups.
 13. The method of claim11, wherein said set of prioritized links are part of a navigationregion.
 14. A machine readable medium having stored thereon datarepresenting sequences of instructions, which when executed by a server,cause said server to: automatically generate a set of prioritized linksto online groups based at least in part on a computer user's browsingpatterns with respect to online groups, and send said set of links to acomputer for display in a graphical user interface.
 15. A machinereadable medium having stored thereon data representing sequences ofinstructions, which when executed by a client, cause said client to:receive a set of prioritized links to online groups for a computer user,and display said set of links in a graphical user interface, whereinsaid set of prioritized links are automatically generated by a remotecomputer based at least in part on said computer user's browsingpatterns with respect to online groups.
 16. A computer implementedmethod comprising: automatically generating a set of prioritized linksto websites based at least in part on a computer user's browsingpatterns with respect to said websites, and displaying said set of linksin a graphical user interface.
 17. The method of claim 1, wherein saidset of prioritized links includes links to websites most consistentlyvisited by said user.
 18. The method of claim 2, further comprisingautomatically generating a set of links to websites most recentlyvisited by said user and displaying said set of links to websites mostrecently visited by said user in said graphical user interface.
 19. Agraphical user interface on a computer comprising: a set of prioritizedlinks to websites for a computer user, wherein said set of links areautomatically generated by said computer based at least in part on saidcomputer user's browsing patterns with respect to said websites.
 20. Amachine readable medium having stored thereon data representingsequences of instructions, which when executed by a computer, cause saidcomputer to: automatically generate a set of prioritized links towebsites based at least in part on a computer user's browsing patternswith respect to said websites, and display said set of links in agraphical user interface.